import request from '@/utils/request'

/**
 * 获取薪资数据列表
 * @param {Object} params - 查询参数
 * - page: 当前页码
 * - limit: 每页记录数
 * - month: 月份，格式为 YYYY-MM
 * - nickname: 员工昵称
 * @returns {Promise} 返回包含薪资数据列表的Promise对象
 */
export function getSalaryData(params) {
  return request({
    url: '/api/umm/salary/list/',
    method: 'get',
    params
  }).catch(error => {
    console.error('获取薪资数据失败，尝试使用测试数据API:', error);
    // 如果正常API失败，尝试使用测试数据API
    return request({
      url: '/api/umm/test-salary-data/',
      method: 'get',
      params
    }).catch(testError => {
      console.error('测试数据API也失败:', testError);
      return { data: { items: [], total: 0 } }; // 返回空数据以防止前端错误
    });
  });
}

/**
 * 获取薪资详情
 * @param {Object} params - 查询参数
 * - month: 月份，格式为 YYYY-MM
 * - nickname: 员工昵称
 * @returns {Promise} 返回包含薪资详情的Promise对象
 */
export function getSalaryDetail(params) {
  return request({
    url: '/api/umm/salary/detail/',
    method: 'get',
    params
  }).catch(error => {
    console.error('获取薪资详情失败，尝试使用测试数据API:', error);
    // 如果正常API失败，尝试使用测试数据API
    return request({
      url: '/api/umm/test-salary-detail/',
      method: 'get',
      params
    }).catch(testError => {
      console.error('测试数据API也失败:', testError);
      return { data: {} }; // 返回空数据以防止前端错误
    });
  });
}

/**
 * 导出薪资数据
 * @param {Object} params - 查询参数
 * - month: 月份，格式为 YYYY-MM
 * - nickname: 员工昵称
 * @returns {Promise} 返回二进制流的Promise对象
 */
export function exportSalaryData(params) {
  return request({
    url: '/api/umm/salary/export/',
    method: 'get',
    params,
    responseType: 'blob'
  }).catch(error => {
    console.error('导出薪资数据失败:', error);
    throw error; // 重新抛出错误，因为前端需要处理blob响应
  });
}

/**
 * 获取客服用户列表（用于薪资筛选）
 * @returns {Promise} 返回包含客服用户列表的Promise对象
 */
export function getCustomerServiceUsers() {
  return request({
    url: '/api/umm/salary/user-options/',
    method: 'get'
  }).catch(error => {
    console.error('获取客服用户列表失败，使用模拟数据:', error);
    // 使用模拟数据
    return { 
      code: 200,
      message: '返回模拟数据', 
      data: [
        { value: '客服1', label: '客服1' },
        { value: '客服2', label: '客服2' },
        { value: '客服3', label: '客服3' },
        { value: '客服4', label: '客服4' },
        { value: '客服5', label: '客服5' }
      ] 
    };
  });
} 